Blogf

Ce blog est encore en construction

Notes de la conférence Maitriser les fondamentaux du Web

Quelques mots sur la conférence et le talk

Le DevFest Strasbourg se décrit comme “La plus grande conférence technique du Grand Est destinée aux développeurs”.

Bertrand Delacrétaz est Principal Developer chez Adobe Suisse, et Former Board Member (pendant 14 ans !) chez Apache Software Foundation. Il se défini comme développeur généraliste, c’est à dire pas forcément capable de rentrer dans les détails de tous les sujets mais capable de parler avec les experts de tous ces sujets.

Dans cette conférence, il explique que la simplicité apparente du web n’exclut pas d’accorder de l’importance à différents sujets importants: sécurité, performance, design… Le plus important étant néanmoins de faire au plus simple.

Les fondamentaux du web

Comment ça fonctionne

Bertrand Delacrétaz part d’un constat: on pense souvent qu’un site internet c’est simple: du HTML, du CSS et un peu de Javascript. Le tout avec un côté client symbolisé par le navigateur et tout ce qu’il faut d’appels HTTP entre celui-ci et les serveurs.

Ce principe très simple est d’ailleurs ce qui contribué à l’essor du web.

Mais ces langages, issus de standards (W3C) sont en constante évolution. Pensez d’ailleurs à vous mettre à jour des dernières spécifications et faites attention à ne pas laisser l’utilisation des frameworks vous masquer les évolutions des langages, et des web APIs.

Le speaker introduit ensuite la notion de evergreen web (ndlr: définition du terme par le W3C), c’est à dire la capacité des navigateurs à se mettre à jour discrétement et régulièrement pour intégrer ces nouveautés. Fini les limitations d’utilisation de certains navigateurs parce que celui-ci ne supporte pas telle ou telle fonctionnalité. C’est beaucoup plus unifié désormais. Des sites permettent même d’avoir une vision de ces supports (par exemple: MDN, Can I Use).

Make it look good

Au coeur d’une interface attrayante on retrouve le CSS. Mais la sémantique doit elle rester la responsabilité du HTML. De plus, le CSS moderne permet d’aller de plus en plus loin dans la personnalisation, il faut en suivre les nouveautés sous peine de rester parfois dépendants de librairie externe sans savoir que le langage comporte désormais ce qu’il faut.

Quelques termes et concepts importants à connaître:

Images et Videos

Les images ça peut sembler simple à première vue: une balise image et un lien dedans.

En pratique on peut vouloir supporter plusieurs types de formats, des formats bitmap, vectoriel, du webp (qui contient plusieurs résolutions d’images).

La balise <picture> permet aussi d’indiquer au navigateur plusieurs images et formats à prendre dans un ordre de priorité selon ce qu’il est capable de supporter.

Concernant les videos, en principe on fonctionne surtout en streaming, en envoyant petit bout par petit bout. Cela permet aussi un côté adaptatif car un changement de type de connexion par exemple (haut-débit vers bas-débit) va se symboliser par l’envoi de paquets de plus basse qualité (l’image perd en qualité) plutôt qu’une perte d’accès.

NDLR: pour aller plus loin Guide des types et formats de fichiers d’images sur le MDN

Securité

Le hacking n’est plus réservé aux gros sites et aux grandes sociétés, tout type de site peut est concerné.

Quelques termes et concepts importants à connaître:

Performance

Pour mesurer la performance d’un site, on peut utiliser les Core Web Vitals et ses indicateurs. (ndlr: introduction à ces métriques sur le blog web.dev)

Le caching est un stockage intermédiaire permettant de servir des données statiques (pages, images etc.) rapidement aux clients. Le cache peut venir des serveurs applicatifs mais les navigateurs en fournissent aussi (relatif aux sites déjà visités). Les CDN (MDN) permettent de rapprocher (physiquement) le cache des utilisateurs (quelques acteurs: Akamai, Fastly, Cloudflare).

Le concept Lean and Mean concerne le contenu non nécessaire dans les contenus qu’on renvoie au client. On affiche en premier le HTML (essentiel), puis le CSS (nécessaire), ensuite le JavaScript (souvent facultatif). Il faut toujours penser au mode dégradé lors du développement et des tests.

Développement

La feedback loop est importante à maitriser car chaque étape (build, déploiement, tests...) contribue à ralentir le temps entre la conception et la production de fonctionnalité. Le mot-clé est simplicité (et frugalité).